; 声明一个对象，并初始化其属性
myObject := {
    configFile: A_ScriptDir "\data.txt", ; 配置文件路径
    texts: ["Sample text 1", "Sample text 2"],  ; texts 初始化为示例数组
    index: 1                              ; 初始索引为 1（AutoHotkey 数组从 1 开始）
}

; 保存对象到文件的函数
SaveObjectToFile(obj, filePath) {
    file := FileOpen(filePath, "w")
    if !file {
        MsgBox "Failed to open file for writing: " filePath
        return false
    }
    for key, value in obj { ; 直接枚举对象的属性
        if IsObject(value) {
            value := StrJoin(value, ",")
        }
        file.WriteLine(key "=" value)
    }
    file.Close()
    return true
}

; 辅助函数：将数组转换为字符串
StrJoin(arr, delimiter := ",") {
    result := ""
    for index, element in arr {
        if (index > 1) {
            result .= delimiter
        }
        result .= element
    }
    return result
}

; 在脚本最后保存对象
SaveObjectToFile(myObject, A_ScriptDir "\batData.properties")

; 让脚本保持运行，以便可以测试
MsgBox "Press OK to exit the script."
ExitApp
